<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IgH EtherCAT Master: fsm_foe.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">IgH EtherCAT Master
   &#160;<span id="projectnumber">1.5.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('fsm__foe_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">fsm_foe.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>EtherCAT FoE state machines.  
<a href="#details">More...</a></p>

<p><a href="fsm__foe_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a4246c4ce35bd79643952b5a0063a9bc3"><td class="memItemLeft" align="right" valign="top"><a id="a4246c4ce35bd79643952b5a0063a9bc3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a4246c4ce35bd79643952b5a0063a9bc3">EC_FSM_FOE_TIMEOUT</a>&#160;&#160;&#160;3000</td></tr>
<tr class="memdesc:a4246c4ce35bd79643952b5a0063a9bc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum time in ms to wait for responses when reading out the dictionary. <br /></td></tr>
<tr class="separator:a4246c4ce35bd79643952b5a0063a9bc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a490c6164b77b35a76c142d7ae688ee46"><td class="memItemLeft" align="right" valign="top"><a id="a490c6164b77b35a76c142d7ae688ee46"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a490c6164b77b35a76c142d7ae688ee46">EC_MBOX_TYPE_FILEACCESS</a>&#160;&#160;&#160;0x04</td></tr>
<tr class="memdesc:a490c6164b77b35a76c142d7ae688ee46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mailbox type FoE. <br /></td></tr>
<tr class="separator:a490c6164b77b35a76c142d7ae688ee46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a2af366a118692e3d53d956a80f9fc3"><td class="memItemLeft" align="right" valign="top"><a id="a0a2af366a118692e3d53d956a80f9fc3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a0a2af366a118692e3d53d956a80f9fc3">EC_FOE_HEADER_SIZE</a>&#160;&#160;&#160;6</td></tr>
<tr class="memdesc:a0a2af366a118692e3d53d956a80f9fc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the FoE header. <br /></td></tr>
<tr class="separator:a0a2af366a118692e3d53d956a80f9fc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a06fc87d81c62e9abb8790b6e5713c55b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
&#160;&#160;<a class="el" href="fsm__foe_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba274ce7f1d098d17f4435a8bfdee7a4b6">EC_FOE_OPCODE_RRQ</a> = 1, 
<a class="el" href="fsm__foe_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba85d9b2730d6c8860d50c902a56c4b77f">EC_FOE_OPCODE_WRQ</a> = 2, 
<a class="el" href="fsm__foe_8c.html#a06fc87d81c62e9abb8790b6e5713c55bad82fed5898705732018c89eaef73b61b">EC_FOE_OPCODE_DATA</a> = 3, 
<a class="el" href="fsm__foe_8c.html#a06fc87d81c62e9abb8790b6e5713c55baf596c2995678e7539a7e0291397ffa41">EC_FOE_OPCODE_ACK</a> = 4, 
<br />
&#160;&#160;<a class="el" href="fsm__foe_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba44f334d877d5a8f7ece1073bf18b65e1">EC_FOE_OPCODE_ERR</a> = 5, 
<a class="el" href="fsm__foe_8c.html#a06fc87d81c62e9abb8790b6e5713c55bacbb873b6fbdd75456477f6f7ed5d04a1">EC_FOE_OPCODE_BUSY</a> = 6
<br />
 }<tr class="memdesc:a06fc87d81c62e9abb8790b6e5713c55b"><td class="mdescLeft">&#160;</td><td class="mdescRight">FoE OpCodes.  <a href="fsm__foe_8c.html#a06fc87d81c62e9abb8790b6e5713c55b">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a06fc87d81c62e9abb8790b6e5713c55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a3cc95aabb8eac93a7c7cd3d2232a0d8f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a3cc95aabb8eac93a7c7cd3d2232a0d8f">ec_foe_prepare_data_send</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:a3cc95aabb8eac93a7c7cd3d2232a0d8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a file or the next fragment.  <a href="#a3cc95aabb8eac93a7c7cd3d2232a0d8f">More...</a><br /></td></tr>
<tr class="separator:a3cc95aabb8eac93a7c7cd3d2232a0d8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3044752120b2e5e680b20ffda0d1297"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#aa3044752120b2e5e680b20ffda0d1297">ec_foe_prepare_wrq_send</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:aa3044752120b2e5e680b20ffda0d1297"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepare a write request (WRQ) with filename.  <a href="#aa3044752120b2e5e680b20ffda0d1297">More...</a><br /></td></tr>
<tr class="separator:aa3044752120b2e5e680b20ffda0d1297"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f9f8b638f6330e726d6990c7026d9ab"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a3f9f8b638f6330e726d6990c7026d9ab">ec_foe_prepare_rrq_send</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:a3f9f8b638f6330e726d6990c7026d9ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepare a read request (RRQ) with filename.  <a href="#a3f9f8b638f6330e726d6990c7026d9ab">More...</a><br /></td></tr>
<tr class="separator:a3f9f8b638f6330e726d6990c7026d9ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a749663830c78b6c8448cfb2720314a03"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a749663830c78b6c8448cfb2720314a03">ec_foe_prepare_send_ack</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:a749663830c78b6c8448cfb2720314a03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepare to send an acknowledge.  <a href="#a749663830c78b6c8448cfb2720314a03">More...</a><br /></td></tr>
<tr class="separator:a749663830c78b6c8448cfb2720314a03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a783c1ba470f6b2d1a94169ecd872f5ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a783c1ba470f6b2d1a94169ecd872f5ad">ec_foe_set_tx_error</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, uint32_t errorcode)</td></tr>
<tr class="memdesc:a783c1ba470f6b2d1a94169ecd872f5ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an error code and go to the send error state.  <a href="#a783c1ba470f6b2d1a94169ecd872f5ad">More...</a><br /></td></tr>
<tr class="separator:a783c1ba470f6b2d1a94169ecd872f5ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a794246bfd5d0c299f750b2d86423c09e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a794246bfd5d0c299f750b2d86423c09e">ec_foe_set_rx_error</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, uint32_t errorcode)</td></tr>
<tr class="memdesc:a794246bfd5d0c299f750b2d86423c09e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an error code and go to the receive error state.  <a href="#a794246bfd5d0c299f750b2d86423c09e">More...</a><br /></td></tr>
<tr class="separator:a794246bfd5d0c299f750b2d86423c09e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8e37032f0da607138b31e1be38e66a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#ac8e37032f0da607138b31e1be38e66a3">ec_fsm_foe_end</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:ac8e37032f0da607138b31e1be38e66a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">State: END.  <a href="#ac8e37032f0da607138b31e1be38e66a3">More...</a><br /></td></tr>
<tr class="separator:ac8e37032f0da607138b31e1be38e66a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac71bdb43cf404486a3b3746e8b84b8c4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#ac71bdb43cf404486a3b3746e8b84b8c4">ec_fsm_foe_error</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:ac71bdb43cf404486a3b3746e8b84b8c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">State: ERROR.  <a href="#ac71bdb43cf404486a3b3746e8b84b8c4">More...</a><br /></td></tr>
<tr class="separator:ac71bdb43cf404486a3b3746e8b84b8c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a7b0412be47fea987c8acd25460ccbc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a0a7b0412be47fea987c8acd25460ccbc">ec_fsm_foe_state_wrq_sent</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:a0a7b0412be47fea987c8acd25460ccbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">State: WRQ SENT.  <a href="#a0a7b0412be47fea987c8acd25460ccbc">More...</a><br /></td></tr>
<tr class="separator:a0a7b0412be47fea987c8acd25460ccbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11fa7aa0ca3996b8b7224b75f6881ada"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a11fa7aa0ca3996b8b7224b75f6881ada">ec_fsm_foe_state_rrq_sent</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:a11fa7aa0ca3996b8b7224b75f6881ada"><td class="mdescLeft">&#160;</td><td class="mdescRight">State: RRQ SENT.  <a href="#a11fa7aa0ca3996b8b7224b75f6881ada">More...</a><br /></td></tr>
<tr class="separator:a11fa7aa0ca3996b8b7224b75f6881ada"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c15317b1cb99d3d7f0202fe0c7d67fc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a1c15317b1cb99d3d7f0202fe0c7d67fc">ec_fsm_foe_state_ack_check</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:a1c15317b1cb99d3d7f0202fe0c7d67fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check for acknowledge.  <a href="#a1c15317b1cb99d3d7f0202fe0c7d67fc">More...</a><br /></td></tr>
<tr class="separator:a1c15317b1cb99d3d7f0202fe0c7d67fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac400ff02da716a3495e6f2496ed155bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#ac400ff02da716a3495e6f2496ed155bf">ec_fsm_foe_state_ack_read</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:ac400ff02da716a3495e6f2496ed155bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acknowledge a read operation.  <a href="#ac400ff02da716a3495e6f2496ed155bf">More...</a><br /></td></tr>
<tr class="separator:ac400ff02da716a3495e6f2496ed155bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66e1620c3f79db7867547b3447d830ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a66e1620c3f79db7867547b3447d830ae">ec_fsm_foe_state_data_sent</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:a66e1620c3f79db7867547b3447d830ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">State: WRQ SENT.  <a href="#a66e1620c3f79db7867547b3447d830ae">More...</a><br /></td></tr>
<tr class="separator:a66e1620c3f79db7867547b3447d830ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af86faeba94c3f23660f4f36501c4d587"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#af86faeba94c3f23660f4f36501c4d587">ec_fsm_foe_state_data_check</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:af86faeba94c3f23660f4f36501c4d587"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check for data.  <a href="#af86faeba94c3f23660f4f36501c4d587">More...</a><br /></td></tr>
<tr class="separator:af86faeba94c3f23660f4f36501c4d587"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab160ca94e3c8369d9c5b7f4e5a526b4c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#ab160ca94e3c8369d9c5b7f4e5a526b4c">ec_fsm_foe_state_data_read</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:ab160ca94e3c8369d9c5b7f4e5a526b4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start reading data.  <a href="#ab160ca94e3c8369d9c5b7f4e5a526b4c">More...</a><br /></td></tr>
<tr class="separator:ab160ca94e3c8369d9c5b7f4e5a526b4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9997509b047fe9257a942f955bb2beee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a9997509b047fe9257a942f955bb2beee">ec_fsm_foe_state_sent_ack</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:a9997509b047fe9257a942f955bb2beee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent an acknowledge.  <a href="#a9997509b047fe9257a942f955bb2beee">More...</a><br /></td></tr>
<tr class="separator:a9997509b047fe9257a942f955bb2beee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26b3dd3314755ca5f00f06203bca35a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a26b3dd3314755ca5f00f06203bca35a8">ec_fsm_foe_write_start</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:a26b3dd3314755ca5f00f06203bca35a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the FoE write state machine.  <a href="#a26b3dd3314755ca5f00f06203bca35a8">More...</a><br /></td></tr>
<tr class="separator:a26b3dd3314755ca5f00f06203bca35a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b9abbda9598a99b2979141597ce9c1d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a3b9abbda9598a99b2979141597ce9c1d">ec_fsm_foe_read_start</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:a3b9abbda9598a99b2979141597ce9c1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starting state for read operations.  <a href="#a3b9abbda9598a99b2979141597ce9c1d">More...</a><br /></td></tr>
<tr class="separator:a3b9abbda9598a99b2979141597ce9c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99c4cd5d11be273cc2119fe11e829574"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a99c4cd5d11be273cc2119fe11e829574">ec_fsm_foe_init</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm)</td></tr>
<tr class="memdesc:a99c4cd5d11be273cc2119fe11e829574"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a99c4cd5d11be273cc2119fe11e829574">More...</a><br /></td></tr>
<tr class="separator:a99c4cd5d11be273cc2119fe11e829574"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a488d124cc61f4d42841910e3a6f46507"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a488d124cc61f4d42841910e3a6f46507">ec_fsm_foe_clear</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm)</td></tr>
<tr class="memdesc:a488d124cc61f4d42841910e3a6f46507"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a488d124cc61f4d42841910e3a6f46507">More...</a><br /></td></tr>
<tr class="separator:a488d124cc61f4d42841910e3a6f46507"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a305e7b497f30525f7fcb4bbcd31b3cd3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a305e7b497f30525f7fcb4bbcd31b3cd3">ec_fsm_foe_exec</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:a305e7b497f30525f7fcb4bbcd31b3cd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Executes the current state of the state machine.  <a href="#a305e7b497f30525f7fcb4bbcd31b3cd3">More...</a><br /></td></tr>
<tr class="separator:a305e7b497f30525f7fcb4bbcd31b3cd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97ddad1a7cedab54a4cf939699fc55a8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#a97ddad1a7cedab54a4cf939699fc55a8">ec_fsm_foe_success</a> (const <a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm)</td></tr>
<tr class="memdesc:a97ddad1a7cedab54a4cf939699fc55a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns, if the state machine terminated with success.  <a href="#a97ddad1a7cedab54a4cf939699fc55a8">More...</a><br /></td></tr>
<tr class="separator:a97ddad1a7cedab54a4cf939699fc55a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf0df15e56191827d71bfde97ed3284c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#abf0df15e56191827d71bfde97ed3284c">ec_fsm_foe_transfer</a> (<a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *fsm, <a class="el" href="globals_8h.html#a8d9ffff7dbe1babaa4786a63f2860d57">ec_slave_t</a> *slave, <a class="el" href="structec__foe__request__t.html">ec_foe_request_t</a> *request)</td></tr>
<tr class="memdesc:abf0df15e56191827d71bfde97ed3284c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepares an FoE transfer.  <a href="#abf0df15e56191827d71bfde97ed3284c">More...</a><br /></td></tr>
<tr class="separator:abf0df15e56191827d71bfde97ed3284c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ae1522d53c9b6fc891d7fc2e95440da60"><td class="memItemLeft" align="right" valign="top"><a id="ae1522d53c9b6fc891d7fc2e95440da60"></a>
enum  { ... } &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__foe_8c.html#ae1522d53c9b6fc891d7fc2e95440da60">ec_foe_opcode_t</a></td></tr>
<tr class="memdesc:ae1522d53c9b6fc891d7fc2e95440da60"><td class="mdescLeft">&#160;</td><td class="mdescRight">FoE OpCodes. <br /></td></tr>
<tr class="separator:ae1522d53c9b6fc891d7fc2e95440da60"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>EtherCAT FoE state machines. </p>

<p class="definition">Definition in file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>
</div><h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="a06fc87d81c62e9abb8790b6e5713c55b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06fc87d81c62e9abb8790b6e5713c55b">&#9670;&nbsp;</a></span>anonymous enum</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>FoE OpCodes. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a06fc87d81c62e9abb8790b6e5713c55ba274ce7f1d098d17f4435a8bfdee7a4b6"></a>EC_FOE_OPCODE_RRQ&#160;</td><td class="fielddoc"><p>Read request. </p>
</td></tr>
<tr><td class="fieldname"><a id="a06fc87d81c62e9abb8790b6e5713c55ba85d9b2730d6c8860d50c902a56c4b77f"></a>EC_FOE_OPCODE_WRQ&#160;</td><td class="fielddoc"><p>Write request. </p>
</td></tr>
<tr><td class="fieldname"><a id="a06fc87d81c62e9abb8790b6e5713c55bad82fed5898705732018c89eaef73b61b"></a>EC_FOE_OPCODE_DATA&#160;</td><td class="fielddoc"><p>Data. </p>
</td></tr>
<tr><td class="fieldname"><a id="a06fc87d81c62e9abb8790b6e5713c55baf596c2995678e7539a7e0291397ffa41"></a>EC_FOE_OPCODE_ACK&#160;</td><td class="fielddoc"><p>Acknowledge. </p>
</td></tr>
<tr><td class="fieldname"><a id="a06fc87d81c62e9abb8790b6e5713c55ba44f334d877d5a8f7ece1073bf18b65e1"></a>EC_FOE_OPCODE_ERR&#160;</td><td class="fielddoc"><p>Error. </p>
</td></tr>
<tr><td class="fieldname"><a id="a06fc87d81c62e9abb8790b6e5713c55bacbb873b6fbdd75456477f6f7ed5d04a1"></a>EC_FOE_OPCODE_BUSY&#160;</td><td class="fielddoc"><p>Busy. </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00066">66</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a3cc95aabb8eac93a7c7cd3d2232a0d8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3cc95aabb8eac93a7c7cd3d2232a0d8f">&#9670;&nbsp;</a></span>ec_foe_prepare_data_send()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ec_foe_prepare_data_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sends a file or the next fragment. </p>
<dl class="section return"><dt>Returns</dt><dd>Zero on success, otherwise a negative error code. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Finite state machine. </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00236">236</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="aa3044752120b2e5e680b20ffda0d1297"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3044752120b2e5e680b20ffda0d1297">&#9670;&nbsp;</a></span>ec_foe_prepare_wrq_send()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ec_foe_prepare_wrq_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Prepare a write request (WRQ) with filename. </p>
<dl class="section return"><dt>Returns</dt><dd>Zero on success, otherwise a negative error code. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Finite state machine. </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00278">278</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a3f9f8b638f6330e726d6990c7026d9ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f9f8b638f6330e726d6990c7026d9ab">&#9670;&nbsp;</a></span>ec_foe_prepare_rrq_send()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ec_foe_prepare_rrq_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Prepare a read request (RRQ) with filename. </p>
<dl class="section return"><dt>Returns</dt><dd>Zero on success, otherwise a negative error code. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Finite state machine. </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00555">555</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a749663830c78b6c8448cfb2720314a03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a749663830c78b6c8448cfb2720314a03">&#9670;&nbsp;</a></span>ec_foe_prepare_send_ack()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ec_foe_prepare_send_ack </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Prepare to send an acknowledge. </p>
<dl class="section return"><dt>Returns</dt><dd>Zero on success, otherwise a negative error code. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>FoE statemachine. </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00589">589</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a783c1ba470f6b2d1a94169ecd872f5ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a783c1ba470f6b2d1a94169ecd872f5ad">&#9670;&nbsp;</a></span>ec_foe_set_tx_error()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_foe_set_tx_error </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>errorcode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set an error code and go to the send error state. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>FoE statemachine. </td></tr>
    <tr><td class="paramname">errorcode</td><td>FoE error code. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00908">908</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a794246bfd5d0c299f750b2d86423c09e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a794246bfd5d0c299f750b2d86423c09e">&#9670;&nbsp;</a></span>ec_foe_set_rx_error()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_foe_set_rx_error </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>errorcode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set an error code and go to the receive error state. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>FoE statemachine. </td></tr>
    <tr><td class="paramname">errorcode</td><td>FoE error code. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00921">921</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="ac8e37032f0da607138b31e1be38e66a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8e37032f0da607138b31e1be38e66a3">&#9670;&nbsp;</a></span>ec_fsm_foe_end()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_end </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>State: END. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>finite state machine </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00220">220</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="ac71bdb43cf404486a3b3746e8b84b8c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac71bdb43cf404486a3b3746e8b84b8c4">&#9670;&nbsp;</a></span>ec_fsm_foe_error()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_error </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>State: ERROR. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>finite state machine </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00206">206</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a0a7b0412be47fea987c8acd25460ccbc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a7b0412be47fea987c8acd25460ccbc">&#9670;&nbsp;</a></span>ec_fsm_foe_state_wrq_sent()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_state_wrq_sent </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>State: WRQ SENT. </p>
<p>Checks is the previous transmit datagram succeded and sends the next fragment, if necessary. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>FoE statemachine. </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00477">477</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a11fa7aa0ca3996b8b7224b75f6881ada"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11fa7aa0ca3996b8b7224b75f6881ada">&#9670;&nbsp;</a></span>ec_fsm_foe_state_rrq_sent()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_state_rrq_sent </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>State: RRQ SENT. </p>
<p>Checks is the previous transmit datagram succeeded and sends the next fragment, if necessary. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>FoE statemachine. </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00615">615</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a1c15317b1cb99d3d7f0202fe0c7d67fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c15317b1cb99d3d7f0202fe0c7d67fc">&#9670;&nbsp;</a></span>ec_fsm_foe_state_ack_check()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_state_ack_check </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check for acknowledge. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>FoE statemachine. </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00345">345</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="ac400ff02da716a3495e6f2496ed155bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac400ff02da716a3495e6f2496ed155bf">&#9670;&nbsp;</a></span>ec_fsm_foe_state_ack_read()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_state_ack_read </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Acknowledge a read operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>FoE statemachine. </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00397">397</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a66e1620c3f79db7867547b3447d830ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66e1620c3f79db7867547b3447d830ae">&#9670;&nbsp;</a></span>ec_fsm_foe_state_data_sent()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_state_data_sent </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>State: WRQ SENT. </p>
<p>Checks is the previous transmit datagram succeded and sends the next fragment, if necessary. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Foe statemachine. </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00518">518</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="af86faeba94c3f23660f4f36501c4d587"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af86faeba94c3f23660f4f36501c4d587">&#9670;&nbsp;</a></span>ec_fsm_foe_state_data_check()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_state_data_check </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check for data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>FoE statemachine. </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00686">686</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="ab160ca94e3c8369d9c5b7f4e5a526b4c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab160ca94e3c8369d9c5b7f4e5a526b4c">&#9670;&nbsp;</a></span>ec_fsm_foe_state_data_read()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_state_data_read </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start reading data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>FoE statemachine. </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00738">738</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a9997509b047fe9257a942f955bb2beee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9997509b047fe9257a942f955bb2beee">&#9670;&nbsp;</a></span>ec_fsm_foe_state_sent_ack()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_state_sent_ack </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent an acknowledge. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>FoE statemachine. </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00862">862</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a26b3dd3314755ca5f00f06203bca35a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26b3dd3314755ca5f00f06203bca35a8">&#9670;&nbsp;</a></span>ec_fsm_foe_write_start()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_write_start </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initializes the FoE write state machine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>finite state machine </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00311">311</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a3b9abbda9598a99b2979141597ce9c1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b9abbda9598a99b2979141597ce9c1d">&#9670;&nbsp;</a></span>ec_fsm_foe_read_start()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_read_start </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Starting state for read operations. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>FoE statemachine. </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00653">653</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a99c4cd5d11be273cc2119fe11e829574"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99c4cd5d11be273cc2119fe11e829574">&#9670;&nbsp;</a></span>ec_fsm_foe_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>finite state machine </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00107">107</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a488d124cc61f4d42841910e3a6f46507"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a488d124cc61f4d42841910e3a6f46507">&#9670;&nbsp;</a></span>ec_fsm_foe_clear()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_clear </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Destructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>finite state machine </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00119">119</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a305e7b497f30525f7fcb4bbcd31b3cd3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a305e7b497f30525f7fcb4bbcd31b3cd3">&#9670;&nbsp;</a></span>ec_fsm_foe_exec()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ec_fsm_foe_exec </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Executes the current state of the state machine. </p>
<dl class="section return"><dt>Returns</dt><dd>1, if the datagram was used, else 0. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>finite state machine </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00129">129</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="a97ddad1a7cedab54a4cf939699fc55a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97ddad1a7cedab54a4cf939699fc55a8">&#9670;&nbsp;</a></span>ec_fsm_foe_success()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ec_fsm_foe_success </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns, if the state machine terminated with success. </p>
<dl class="section return"><dt>Returns</dt><dd>non-zero if successful. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Finite state machine </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00163">163</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
<a id="abf0df15e56191827d71bfde97ed3284c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf0df15e56191827d71bfde97ed3284c">&#9670;&nbsp;</a></span>ec_fsm_foe_transfer()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_foe_transfer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__foe_8h.html#a67d256ed8586be0abb5c87691ad840f5">ec_fsm_foe_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="globals_8h.html#a8d9ffff7dbe1babaa4786a63f2860d57">ec_slave_t</a> *&#160;</td>
          <td class="paramname"><em>slave</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__foe__request__t.html">ec_foe_request_t</a> *&#160;</td>
          <td class="paramname"><em>request</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Prepares an FoE transfer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>State machine. </td></tr>
    <tr><td class="paramname">slave</td><td>EtherCAT slave. </td></tr>
    <tr><td class="paramname">request</td><td>Sdo request. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__foe_8c_source.html#l00172">172</a> of file <a class="el" href="fsm__foe_8c_source.html">fsm_foe.c</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_c1346cf4828efdd0d2baf0d391d01b77.html">master</a></li><li class="navelem"><a class="el" href="fsm__foe_8c.html">fsm_foe.c</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
